var file = require("../models/file.js")
var formidable = require("formidable")
var path = require("path")
var fs = require("fs")
var sd = require("silly-datetime")

exports.showIndex = function(req,res,next){  // 首页
    // res.render("index",{  // 默认渲染的是views文件夹中的文件
    //     "albums": file.getAllAlbums()    // 这里是传统的错误思维 不是Node的思维
    // }); 
    // Nodejs所有东西都是异步 所以内层函数不是return回来东西  而是调用高层函数提供的回调函数，把数据当做回调函数的参数来使用
    file.getAllAlbums(function(err,allAlabums){
        if(err){
            // res.render("err");
            next();  // 交给下面适合的
            return;
        }
        res.render("index",{
            "albums" : allAlabums
        })
    });
}

exports.showAlbum = function(req,res,next){   // 相册页 遍历相册中的所有图片
    var albumName = req.params.albumName;
    file.getAllImageByAlbumName(albumName,function(err,imagesArray){
        if(err){
            next(); // 如果没有相册名 就可以next 然后跳到404【交给下面的中间件】
            return;
        }
        res.render("album",{
            "albumname" : albumName,
            "images" : imagesArray
        })
    });
}

exports.showUp = function(req,res){
    file.getAllAlbums(function(err,albums){
        res.render("up",{
            albums: albums
        })
    })
;}

exports.doPost = function(req,res){
    var form  =new formidable.IncomingForm();

    form.uploadDir = path.normalize(__dirname + "/../tempup/"); // 上传的文件先上传到临时文件夹
    form.parse(req,function(err, fields, files,next){//next表示中间件往下走
        console.log(fields)
        console.log(files)
        if(err){
            next();
            return;
        }
        var size = parseInt(files.tupian.size);  //判断文件大小
        if(size > 1024){
            res.send("图片尺寸应该小于1M");
            fs.unlink(files.tupian.path); // 超于文件规定的大小 那么对上传文件的进行删除
            return;
        }

        var ttt =sd.format(new Date(), 'YYYYMMDDHHmmss'); 
        var ran = parseInt(Math.random() * 89999 + 10000);
        var extname = path.extname(files.tupian.name); //用时间戳随机数加上拓展名

        var wenjianjia = fields.wenjianjia;
        var oldpath = files.tupian.path;
        var newpath = path.normalize(__dirname + "/../uploads/"+wenjianjia + "/" +ttt +ran + extname);
        fs.rename(oldpath,newpath,function(err){ //将文件移动到要上传的文件夹上面
            if(err){
                res.send("改名失败");
                return;
            }
            res.send("bingo");
        });
    });
    
}